<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use app\admin\model\Manager as ManagerModel;
class Manager extends Common
{   
    protected $repo;
    public function _initialize(){ 
        $this->repo=new ManagerModel;
    }
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {   
        $user=db('manager')->paginate(3);
        $this->assign('user',$user);
        return view();
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return view('add');
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        
        $result= $this->repo->add($request);
        if ($result['code']==1) {
           $this->success('管理员添加成功','index');
        }
        $this->error($result['msg']);
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        return db('manager')->where('id',$id)->field('account,state,id')->find();
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {   
        $user=$this->read($id);
        $this->assign('user',$user);
        return view();
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {   
        $data=array(
            // 'account' =>$request->param('account'),
             'password'=>md5($request->param('password')),
             'repassword'=>md5($request->param('repassword')),
             'state'=>$request->param('state'),
             );
            // if(isset($data['account'])){
            //     unset($data['account']);
            // }
            
            if($request->param('state')==0 && $id==1){
                $this->error("超级管理员不允许锁定！");
            }
            //密码验证部分
            if(!$data['password']){//密码为空时，不需要更新密码字段
                unset($data['password']);//删除$data中的password
                unset($data['repassword']);//同上
            }else{//密码不为空时，对密码进行后端次验证
                $result= $this->repo->edit($data,$id);
            }
        if ($result['code']==1) {
           $this->success('管理员编辑成功','index');
        }
        $this->error($result['msg']);
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        if ($id==1) {
            $this->error('超级管理员不能删除');
        }
        $del=db('manager')->where('id',$id)->delete();
        if ($del) {
           $this->success('删除成功','index');
        }else {
            $this->error('删除错误');
        }
    }
    /**
     * 修改管理员密码
     */
    public function setpass(){
        if (request()->isPost()) {
           $data=input('post.');
           $validate=validate('Manager');
           if(!$validate->scene('update')->check($data)){
               $this->error($validate->getError());
           }
           $res=db('manager')->field('password')->find(session('loginid','','admin'));
           if (md5($data['oldpassword'])!=$res['password']) {
               $this->error('旧密码输入不正确');
           }
           $result=db('manager')->where('id',session('loginid','','admin'))->setField('password',md5($data['password']));
           if ($result) {
              $this->success('修改密码成功','admin/index/index');
           }
           $this->error('密码修改错误');
        }
        return view();
    }
}
